import java.util.ArrayList;
import java.util.List;


public class Skill {
	private String typeName;
	private int groupID;
	private int typeID;
	private boolean published;
	private List<Integer> requiredSkills;
	private List<Integer> requiredLevels;
	private int rank;
	private String description;
	private String primaryAttribute;
	private String secondaryAttribute;
	private List<String> bonusTypes;
	private List<Double> bonusValues;
	
	public Skill(String typeName, int typeID, int groupID, boolean published) {
		this.typeName = typeName;
		this.typeID = typeID;
		this.groupID = groupID;
		this.published = published;
		
		requiredSkills = new ArrayList<Integer>();
		requiredLevels = new ArrayList<Integer>();
		bonusTypes = new ArrayList<String>();
		bonusValues = new ArrayList<Double>();
	}
	
	public List<String> getBonusTypes() {
		return bonusTypes;
	}
	
	public void addBonusType(String type) {
		bonusTypes.add(type);
	}
	
	public List<Double> getBonusValues() {
		return bonusValues;
	}
	
	public void addBonusValue(double value) {
		bonusValues.add(value);
	}
	
	public List<Integer> getRequiredLevels() {
		return requiredLevels;
	}
	
	public void addRequiredLevel(int level) {
		requiredLevels.add(level);
	}

	public List<Integer> getRequiredSkills() {
		return requiredSkills;
	}
	public void addRequiredSkill(int id) {
		requiredSkills.add(id);
	}
	public int getRank() {
		return rank;
	}
	public void setRank(int rank) {
		this.rank = rank;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	public String getPrimaryAttribute() {
		return primaryAttribute;
	}
	public void setPrimaryAttribute(String primaryAttribute) {
		this.primaryAttribute = primaryAttribute;
	}
	public String getSecondaryAttribute() {
		return secondaryAttribute;
	}
	public void setSecondaryAttribute(String secondaryAttribute) {
		this.secondaryAttribute = secondaryAttribute;
	}
	public String getTypeName() {
		return typeName;
	}
	public void setTypeName(String typeName) {
		this.typeName = typeName;
	}
	public int getGroupID() {
		return groupID;
	}
	public void setGroupID(int groupID) {
		this.groupID = groupID;
	}
	public int getTypeID() {
		return typeID;
	}
	public void setTypeID(int typeID) {
		this.typeID = typeID;
	}
	public boolean getPublished() {
		return published;
	}
	public void setPublished(boolean published) {
		this.published = published;
	}
}
